Efficient Stateful Dynamic Partial Order Reduction
نویسندگان
چکیده
In applying stateless model checking methods to realistic multithreaded programs, we find that stateless search methods are ineffective in practice, even with dynamic partial order reduction (DPOR) enabled. To solve the inefficiency of stateless runtime model checking, this paper makes two related contributions. The first contribution is a novel and conservative light-weight method for storing abstract states at runtime to help avoid redundant searches. The second contribution is a stateful dynamic partial order reduction algorithm (SDPOR) that avoids a potential unsoundness when DPOR is naively applied in the context of stateful search. Our stateful runtime model checking approach combines light-weight state recording with SDPOR, and strikes a good balance between state recording overheads, on one hand, and the elimination of redundant searches, on the other hand. Our experiments confirm the effectiveness of our approach on several multithreaded benchmarks in C, including some practical programs.
منابع مشابه
Model Checking Database Applications
We describe the design of DPF, an explicit-state model checker for database-backed web applications. DPF interposes between the program and the database layer, and precisely tracks the effects of queries made to the database. We experimentally explore several implementation choices for the model checker: stateful vs. stateless search, state storage and backtracking strategies, and dynamic parti...
متن کاملDynamic Model Checking with Property Driven Pruning to Detect Race Conditions
We present a new property driven pruning algorithm in dynamic model checking to efficiently detect race conditions in multithreaded programs. The main idea is to use a lockset based analysis of observed executions to help prune the search space to be explored by the dynamic search. We assume that a stateless search algorithm is used to systematically execute the program in a depth-first search ...
متن کاملEnabling Efficient Partial Order Reductions for Model Checking Object-Oriented Programs Using Static Calculation of Program Dependences
In our previous work, we developed partial order reduction techniques that now form the core reduction strategies of several popular Java model checking frameworks including Bogor and JPF. These techniques work by dynamically collecting independence information needed to drive POR. In this paper, we consider several additional variants of partial order reductions and how independence informatio...
متن کاملDistributed Dynamic Partial Order Reduction Based Verification of Threaded Software
Runtime (dynamic) model checking is a promising verification methodology for real-world threaded software because of its many features, the prominent ones being: (i) it avoids the need to extract a model and instead runs the actual code, and (ii) the precision of information available at run-time allows techniques such as dynamic partial order reduction (DPOR) [1] to dramatically cut down the n...
متن کاملEffective Techniques for Stateless Model Checking
Aronis, S. 2018. Effective Techniques for Stateless Model Checking. Digital Comprehensive Summaries of Uppsala Dissertations from the Faculty of Science and Technology 1602. 56 pp. Uppsala: Acta Universitatis Upsaliensis. ISBN 978-91-513-0160-0. Stateless model checking is a technique for testing and verifying concurrent programs, based on exploring the different ways in which operations execut...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2008